perm filename F8X[F8,ALS] blob sn#292845 filedate 1977-07-12 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	*TREE MOBS PLY0 COL0 PLOC KLOC ELOC PLYT PLYD PLYH START
C00006 ENDMK
CāŠ—;
*TREE MOBS PLY0 COL0 PLOC KLOC ELOC PLYT PLYD PLYH START
*
*RAM assignments
TREE	EQU	H'0D00'		Start of tree data (14 blocks of 16 bytes each)
MOBS	EQU	H'0DF0'		RAM space for mobility bytes (14 BYTES)
PLY0	EQU	H'0DFE'		Place for player's ply depth choice
COL0	EQU	H'0DFF'		Place for color choice (next after PLY0)
*
*Scratch pad assignments
PLOC	EQU	3		LISU value for ACTIVE and PASSIVE
KLOC	EQU	4		LISU value for KING's and special data
ELOC	EQU	5		LISU value for EMPTY's area
*
*Mimimum ply depths
PLYT	EQU	3		Ply depth for Robot Tom
PLYD	EQU	4		Ply depth for Robot Dick
PLYH	EQU	5		Ply depth for Robot Harry
PLYM	EQU	7		Ply to stop on first non-jump
*
*Set up initial boards both in SC and in blocks 0 and 1
START	LISU	PLOC
	LISL	0
	LI	H'FF'		Full double row of pieces
	LR	I,A		First byte of ACTIVE
	LI	H'F0'		1 row only
	LR	I,A		Second byte of active
	CLR
	LR	I,A		Part of board with no active pieces
	LR	I,A		Part of board with no active pieces
	LR	I,A		Part of board with no passive pieces
	LR	I,A		Part of board with no passive pieces
	LI	H'F'		1 row only (in second half of byte)
	LR	I,A		byte of PASSIVE
	LI	H'FF'		Full double row of pieces
	LR	I,A		Last byte with Passive pieces
	LISU	KLOC
	LISL	0
	CLR
	LR	I,A		4 king bytes next (all empty)
	LR	I,A
	LR	I,A
	LR	I,A
	LI	H'F0'		The 4 leftmost bits for pieces that can move RF
	LR	I,A		The MOVE byte
	LIS	4		BYTE # 1 RF normal move with no piece debit
	LR	I,A
	LI	H'80'		Set score at -128 ( a lose unless a move is found.
	LR	I,A
	CLR			With position advantage of 0
	LR	I,A
	DCI	PLY0		Location to store ply depth number
	LIS	PLYT		The minimum setting for PLY0 (presently 3)
	ST			Save so 7 can be freed as necessary
	LR	7,A		Set originally for 3
	CLR
	ST			Save so 8 can also be freed
	LR	8,A		Set for black to be active
	DCI	TREE		Set to start of data space (presently H'0D00')
	LR	H,DC		Note: H always points to start of a block
	PI	SCRC	Ready for opponents move if he elects BLACK
	PI	SCRC	Ready for Machine to play BLACK
*Now ask for side election or opponents first move
*These are stored in COL0 and PLY0 and the values are transfered to registers
*7 and 8 when the players move is to be verified and when a
*tree search is initiated.  Note that these registers are used as CNTR
*counter for image flop, CVAL character value register, TIM2 time counter
*register, and TEMP temporary register used to contain a character that
*is read or to be written.